1829H - Don't Blame Me - CodeForces Solution


bitmasks dp math

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>

using namespace std;

typedef long long LL;

int main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int t;cin >> t;
    while(t) {
        int n,k;cin >> n >> k;
        vector<int> a(n);
        for(int i=0;i<n;i++) cin >> a[i];
        int p = 1e9 + 7;
        vector<int> dp(64);
        for(int i=0;i<n;i++) {
            for(int j=0;j<=63;j++) {
                dp[j&a[i]] = (dp[j&a[i]] + dp[j]) % p;
            }
            dp[a[i]]++;
        }
        LL ans = 0;
        for(int i=0;i<=63;i++) {
            int x = i,cnt = 0;
            while(x) {
                cnt += x % 2;
                x /= 2;
            }
            if(cnt == k) ans = (ans + dp[i]) % p;
        }
        cout << ans << endl;
        t--;
    }
}


Comments

Submit
0 Comments
More Questions

1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks
472A - Design Tutorial Learn from Math
1368A - C+=
450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math
832A - Sasha and Sticks
292B - Network Topology
1339A - Filling Diamonds
910A - The Way to Home
617A - Elephant
48A - Rock-paper-scissors
294A - Shaass and Oskols
1213A - Chips Moving
490A - Team Olympiad
233A - Perfect Permutation
1360A - Minimal Square
467A - George and Accommodation
893C - Rumor
227B - Effective Approach
1534B - Histogram Ugliness